#!/usr/bin/env node

const { execSync } = require('child_process');
const path = require('path');

console.log('开始构建并运行Android应用...');

try {
  // 1. 构建主应用
  console.log('1. 构建主应用...');
  execSync('npm run build', { stdio: 'inherit' });
  
  // 2. 添加Android平台（如果尚未添加）
  console.log('2. 检查并添加Android平台...');
  try {
    execSync('npx cap ls android', { stdio: 'ignore' });
    console.log('Android平台已存在');
  } catch (error) {
    console.log('添加Android平台...');
    execSync('npx cap add android', { stdio: 'inherit' });
  }
  
  // 3. 同步资源到Android项目
  console.log('3. 同步资源到Android项目...');
  execSync('npx cap sync', { stdio: 'inherit' });
  
  // 4. 构建Android应用
  console.log('4. 构建Android应用...');
  execSync('npx cap build android', { stdio: 'inherit' });
  
  console.log('Android应用构建完成！');
  console.log(`APK文件位于: ${path.join('android', 'app', 'build', 'outputs', 'apk', 'release')}`);
  
  // 5. 询问是否运行应用
  const readline = require('readline');
  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
  });
  
  rl.question('是否要将应用安装到连接的设备上运行？(y/N): ', (answer) => {
    if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
      console.log('正在安装并运行应用...');
      try {
        execSync('npx cap run android', { stdio: 'inherit' });
        console.log('应用已成功安装并运行在设备上！');
      } catch (error) {
        console.log('运行应用时出错，请确保设备已连接并启用USB调试');
        console.error(error.message);
      }
    } else {
      console.log('应用构建完成，您可以手动安装APK文件或在Android Studio中打开项目');
      console.log('要手动安装APK，请使用命令:');
      console.log('adb install android/app/build/outputs/apk/release/app-release.apk');
      console.log('或者在Android Studio中打开项目:');
      console.log('npx cap open android');
    }
    rl.close();
  });
  
} catch (error) {
  console.error('构建过程中发生错误:', error.message);
  process.exit(1);
}